Drag and Drop (D&D) একটি শক্তিশালী ইউজার ইন্টারফেস ফিচার যা ব্যবহারকারীদের UI উপাদানগুলিকে একটি স্থান থেকে অন্য স্থানে টেনে নিয়ে যাওয়ার ক্ষমতা প্রদান করে। ExtJS একটি অন্তর্নির্মিত Drag and Drop API সরবরাহ করে যা কম্পোনেন্টগুলিকে সহজেই ড্র্যাগ এবং ড্রপ করার মাধ্যমে ইন্টারঅ্যাক্টিভ অ্যাপ্লিকেশন তৈরি করতে সহায়ক।
ExtJS এর Drag and Drop API ব্যবহারকারীদের জন্য সহজ এবং ইন্টারেক্টিভ উপায়ে UI উপাদানগুলির মধ্যে স্থানান্তর নিশ্চিত করে। এটি ব্যবহৃত হয়:
নিম্নে একটি সাধারণ উদাহরণ দেখানো হচ্ছে যেখানে দুটি প্যানেল থাকবে, একটিকে ড্র্যাগ সোর্স এবং অপরটিকে ড্রপ টার্গেট হিসেবে ব্যবহার করা হয়েছে।
Ext.create('Ext.panel.Panel', {
title: 'Drag Me',
width: 200,
height: 200,
html: 'Drag this panel!',
renderTo: Ext.getBody(),
draggable: true, // প্যানেলটিকে ড্র্যাগযোগ্য করতে
listeners: {
dragstart: function (dragSource) {
console.log('Drag started!');
},
dragend: function (dragSource) {
console.log('Drag ended!');
}
}
});
Ext.create('Ext.panel.Panel', {
title: 'Drop Here',
width: 200,
height: 200,
renderTo: Ext.getBody(),
droppable: true, // ড্রপযোগ্য করার জন্য
listeners: {
dragover: function (dropTarget, e, data) {
console.log('Dragging over the drop target!');
},
drop: function (dropTarget, e, data) {
console.log('Dropped!');
}
}
});
এখানে:
draggable: true
: প্রথম প্যানেলটিকে ড্র্যাগযোগ্য করেছে।droppable: true
: দ্বিতীয় প্যানেলটিকে ড্রপযোগ্য করেছে।dragstart
, dragend
, dragover
, এবং drop
ইভেন্টগুলো ড্র্যাগ এবং ড্রপ প্রক্রিয়ার পর্যায় চিহ্নিত করে এবং তা কাস্টম কার্যক্রমে ট্রিগার করে।DragSource এবং DropTarget কনফিগারেশন ব্যবহারের মাধ্যমে আপনি আরও অনেক নিয়ন্ত্রণ পেতে পারেন। এখানে একটি বিস্তারিত উদাহরণ দেওয়া হচ্ছে:
Ext.create('Ext.data.Store', {
storeId: 'simpleStore',
fields: ['name'],
data: [
{ 'name': 'John' },
{ 'name': 'Jane' },
{ 'name': 'Peter' },
{ 'name': 'Mark' }
]
});
Ext.create('Ext.grid.Panel', {
title: 'Drag and Drop Grid',
store: Ext.data.StoreManager.lookup('simpleStore'),
columns: [{ text: 'Name', dataIndex: 'name', flex: 1 }],
width: 400,
height: 250,
renderTo: Ext.getBody(),
draggable: true, // গ্রিডকে ড্র্যাগযোগ্য করতে
droppable: true, // গ্রিডকে ড্রপযোগ্য করতে
listeners: {
drop: function (dropTarget, e, data) {
var draggedRecord = data.records[0]; // ড্র্যাগ করা রেকর্ড
var gridStore = this.getStore();
gridStore.add(draggedRecord); // ড্রপ করা রেকর্ডটি গ্রিডে অ্যাড করা
}
}
});
এখানে:
drop
ইভেন্ট ব্যবহার করে, যখন রেকর্ডটি ড্রপ করা হয় তখন সেটি স্টোরে অ্যাড করা হয়।ExtJS এর Drag and Drop API ব্যবহারকারীদের জন্য একটি শক্তিশালী এবং ইন্টারঅ্যাকটিভ ইউজার ইন্টারফেস তৈরির উপকরণ। এটি DragSource এবং DropTarget কনফিগারেশন ব্যবহার করে কম্পোনেন্টগুলির মধ্যে ড্র্যাগ এবং ড্রপ ইভেন্টগুলো সহজভাবে পরিচালনা করে। এই API টির সাহায্যে, ডেটার স্থানান্তর এবং UI এর ইন্টারঅ্যাকশন সহজ এবং আরও কার্যকর হয়।
Read more